home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / sun4c.md / old / diag.h < prev    next >
C/C++ Source or Header  |  1990-12-19  |  2KB  |  75 lines

  1.  
  2. /*    @(#)diag.h 1.4 88/02/08 SMI    */
  3.  
  4. /*
  5.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  6.  */
  7.  
  8. /*
  9.  * Header file for the results from the Sun-2 power-up diagnostics.
  10.  * 
  11.  * All these results are returned in registers which are stored by
  12.  * assembler code into the struct diag_state in global memory.
  13.  *
  14.  * The <ds_damages> field provides summary information about the
  15.  * state of the world.  Each 1-bit indicates that something is working.
  16.  */
  17.  
  18. #ifndef CXBIT
  19. /*
  20.  * Damage control bits in diag_state.ds_damages; if off, indicates failure.
  21.  */
  22. #define PROMBIT 7        /* PROMs unreadable */
  23. #define    CXBIT 8            /* context register value */
  24. #define    SEGBIT 9        /* segment map entry */
  25. #define    PMBIT 10        /* page map entry */
  26. #define    MEMBIT 11        /* page of memory */
  27. #define    DESBIT 12        /* DES chip has error (notfound not an error) */
  28. #define    DESFOUND 13        /* DES chip was found */
  29. /* The following bits are also cleared in the relevant page's pmap entry. */
  30. #define    MCONBIT 25        /* memory failed constant data test */
  31. #define    MADDRBIT 26        /* Mem failed address independence test */
  32. #define    MTRANBIT 27        /* Mem failed in a transient way */
  33.  
  34.  
  35. struct diag_state {
  36.     unsigned long    ds_d0;
  37.     unsigned long    ds_d1;
  38.     unsigned long    ds_damages;    /* Damage control summary bits */
  39.     unsigned long    ds_errcount;    /* Total # of errors encountered */
  40.     unsigned long    ds_tranerrs;    /* Total # of early transient errors */
  41.     unsigned long    ds_d5;
  42.     unsigned long    ds_d6;
  43.     unsigned long    ds_d7;
  44.     /* Next four entries are tied together and apply to the most recent
  45.        error found -- not necessarily the most severe or basic. */
  46.     char    *ds_message;        /* Error message string */
  47.     unsigned long    ds_addr;    /* Failing address */
  48.     unsigned long    ds_wrote;    /* Data we wrote to address */
  49.     unsigned long    ds_read;    /* Data we read back from address */
  50.     /* End of entries for most recent error */
  51.     unsigned long    ds_a4;
  52.     unsigned long    ds_a5;
  53.     unsigned long    ds_mainmemsize;
  54.     unsigned long    ds_a7;
  55. };
  56.  
  57. /*
  58.  * How long to loop (dbra to self) while holding an LED value steady.
  59.  */
  60. #define    LEDQUICK    50000
  61. #define    LEDLONG        250000
  62.  
  63. #if defined(SUN2) || defined(sun2)
  64. #define DIAGREG         0xA000000
  65. #endif
  66.  
  67. #if defined(SUN3) || defined(sun3) 
  68. #define DIAGREG         0x70000000
  69. #endif
  70.  
  71. #ifndef PTEST
  72. #define BTYPE 14              /* Bus Type gets valid in trap.s */
  73. #endif PTEST
  74. #endif
  75.